package com.linzm.leetcode.primary.exercises4_20230129;

import java.util.HashSet;
import java.util.Set;

/**
 * @Author zimingl
 * @Date 2023/1/30 22:50
 * @Description: 宝石与石头
 */
public class Demo5_771 {
    /**
     * 输入：jewels = "aA", stones = "aAAbbbb"
     * 输出：3
     * 给你一个字符串 jewels 代表石头中宝石的类型，另有一个字符串 stones 代表你拥有的石头。 stones 中每个字符代表了一种你拥有的石头的类型，你想知道你拥有的石头中有多少是宝石。
     * 字母区分大小写，因此 "a" 和 "A" 是不同类型的石头。
     */
    public static void main(String[] args) {
        Demo5_771 demo5_771 = new Demo5_771();
        String jewels = "aA", stones = "aAAbbbb";
        int jewelsInStones = demo5_771.numJewelsInStones(jewels, stones);
        System.out.println(jewelsInStones);
    }

    public int numJewelsInStones(String jewels, String stones) {
        Set<Character> set = new HashSet<>();
        for (int i = 0; i < jewels.length(); i++) {
            set.add(jewels.charAt(i));
        }
        int count = 0;
        for (int i = 0; i < stones.length(); i++) {
            if (set.contains(stones.charAt(i))) {
                count++;
            }
        }
        return count;
    }
}
